package javaCode.chapter09.innerclass;

public class InnerClassExercise02 {
    public static void main(String[] args) {
        /*
        1、有一个铃声接口Bell，里面有一个ring方法
        2、有一个手机类Cellphone，具有闹钟功能 alarmClock，参数是Bell类型
        3、测试手机类的闹钟功能，通过匿名内部类 (对象) 作为参数，打印：懒猪起床了
        4、再传入另外一个匿名内部类(对象)，打印：小伙伴上课了
         */

        Cellphone cellphone = new Cellphone();
        //解读
        //1、传递实现了 Bell接口的匿名内部类
        //2、重写了 ring
        //3、相当于 Bell bell = new Bell(){}....
        cellphone.alarmClock(new Bell() {
            @Override
            public void ring() {
                System.out.println("懒猪起床了");
            }
        });

        cellphone.alarmClock(new Bell() {
            @Override
            public void ring() {
                System.out.println("小伙伴们上课了");
            }
        });
    }
}



interface Bell{ //接口
    void ring(); //方法
}

class Cellphone{

    public void alarmClock(Bell bell){ //形参是 Bell 接口类型
        bell.ring(); //动态绑定
    }
}

